package com.ssm.trans;

import java.sql.*;

public class TransationalDemo {


//    public static void main(String[] args) throws SQLException {
//
//        Connection connection = null;
//        try {
//            // 加载驱动
//            Class.forName("com.mysql.jdbc.Driver");
//            String url = "jdbc:mysql://127.0.0.1:3306/test";
//            String user = "root";
//            String password = "root";
//            // 获取连接
//            connection = DriverManager.getConnection(url, user, password);
//            // 取消自动提交
//            connection.setAutoCommit(false);
//
//
//            String sql = "INSERT INTO `t_user` (`id`, `roleId`, `name`, `password`, `salt`) VALUES ('2', '2', '3', '4', '0')";
//            // 创建 statement
//            Statement preparedStatement = connection.createStatement();
//            int rt = preparedStatement.executeUpdate(sql);
//            System.out.println("Statement:" + rt);
//
//            String sql2 = "INSERT INTO `t_user` (`id`, `roleId`, `name`, `password`, `salt`) VALUES(?,?,?,?,?)";
//            PreparedStatement pre = connection.prepareStatement(sql2);
//            pre.setString(1, "1");
//            pre.setString(2, "3");
//            pre.setString(3, "3");
//            pre.setString(4, "3");
//            pre.setString(5, "3");
//
//            int i = pre.executeUpdate();
//            System.out.println("PreparedStatement:" + i);
//
//            connection.commit();
//
//
//        } catch (Exception e) {
//            System.out.println("sql执行失败，准备回滚");
//            e.printStackTrace();
//            if (connection != null) {
//                connection.rollback();
//            }
//        } finally {
//            if (connection != null) {
//                connection.close();
//            }
//        }
//
//
//    }


    public static void main(String[] args) throws SQLException {

        // 加载驱动
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
         // 创建连接
        Connection connection = null;
        String url = "jdbc:mysql://127.0.0.1:3306/test";
        String user = "root";
        String password = "root";

        try {
            connection = DriverManager.getConnection(url,user,password);
        } catch (SQLException e) {
            e.printStackTrace();
        }

        // 创建 statement对象，用以发送sql到数据库
        try {
            Statement st = connection.createStatement();

            String sql = "INSERT INTO `t_user` (`id`, `roleId`, `name`, `password`, `salt`) VALUES ('2', '2', '2', '2', '2')";
            int i = st.executeUpdate(sql);
            System.out.println(i);
        } catch (SQLException e) {
            e.printStackTrace();
            System.out.println("执行异常，进行回滚操作");
            // 回滚
            if(connection!=null){
                connection.rollback();
            }
        }finally {
            // 关闭JDBC
            if(connection!=null){
                connection.close();
            }
        }



    }


}
